The present invention relates to an error function calculation device and an error function calculation method.
In the field of medicine manufacture, material development, or the like, a molecular level design may be necessary for development of new materials. In this case, the nature of the designed molecule is confirmed by knowing the molecular electronic state. The electronic state is known by calculating the electronic wave function. The molecular electronic state is calculated by using various methods. An ab initio molecular orbital method using ab initio molecular orbital calculations is one of these methods. In the ab initio molecular orbital method, the molecular electronic state is theoretically calculated by starting from a Schrodinger equation without taking experimental data into consideration.
The ab initio molecular orbital method requires an enormous amount of calculation proportional to the fourth power of the size of the molecule to be calculated, even when using the simplest Hartree-Fock method (hereinafter abbreviated as “HF method”). It is difficult to design a molecule with a large size in spite of development of calculators (computers) and progress of parallelization technology in recent years. In the ab initio molecular orbital calculation, a step of calculating a two-electron integral and generating a Fock matrix requires most of the calculation time. Therefore, as a method for processing the calculation in the ab initio molecular orbital method at high speed, various methods for accelerating the two-electron integral calculation have been proposed.
The two-electron integral is determined by four Gaussian-type functions, for example. When the orbital quantum vectors of these Gaussian-type functions are denoted by a, b, c, and d, the sum of the three vector components (x component, y component, and z component) of a certain orbital quantum vector is called an orbital quantum number, and orbitals whose orbital quantum number is 0, 1, 2, . . . are respectively called an s orbital, p orbital, d orbital, . . . . The two-electron integral is expressed as [pp|ss] (or (pp,ss) or (pp|ss)), [dd|ss] (or (dd,ss) or (dd|ss)), or the like using the orbitals indicated by the orbital quantum numbers of the four orbital quantum vectors a, b, c, and d which determine the calculation.
The two-electron integral calculation is divided into calculation of initial integrals [0](0) to [0](m) and calculation of two-electron integrals by a recurrence calculation using the initial integrals [0](0) to [0](m) and a coefficient. [0] means [ss|ss], and m means the sum of the major orbital quantum numbers of the orbitals of the two-electron integral [ij|kl]. For example, a method for accelerating the calculation of the initial integral [0](m) is disclosed in “Computing Methods for the Auxiliary s-type Integrals [0](m) by a Molecular Orbital Special-Purpose Machine MOEngine”, H. Takashima and nine others, JCPE Journal, Japan Chemistry Program Exchange, October 2001, Vol. 13, No. 4, pp. 241-250.
The two-electron integral calculation is expressed by a recurrence calculation by applying an Obara algorithm (see “General recurrence formulas for molecular integrals over Cartesian Gaussian function”, S. Obara and A. Saika, J. Chem. Phys. Vol 89, No. 3, August 1988, for example). This calculation can be accelerated by calculating a plurality of multiplication-accumulation calculations in parallel. However, since the initial integral calculation section has a small degree of parallelism, this section becomes a bottle neck for acceleration.
Specifically, the Obara algorithm has a program structure in which the two-electron integral value is calculated by repeating processing of performing the recurrence calculation after the initial integral calculation having a quadruple loop structure in the outer quadruple loop, as shown in FIG. 13. In the initial integral calculation having the quadruple loop structure, calculation processing of the exponential function and the error function is performed as described in “Efficient recursive computation of molecular integrals over Cartesian Gaussian functions” (S. Obara and A. Saika, J. Chem. Phys. 84 (7), 1 Apr. 1986) and “Computing Methods for the Auxiliary s-type Integrals [0](m) by a Molecular Orbital Special-Purpose Machine MOEngine”, H. Takashima and nine others, JCPE Journal, Japan Chemistry Program Exchange, October 2001, Vol. 13, No. 4, pp. 241-250. Therefore, the two-electron integral calculation can be accelerated by accelerating the calculation of the exponential function and the error function. In particular, since the calculation of the error function is repeated in the octuple loop, the two-electron integral calculation is easily accelerated by accelerating the calculation of the error function.
It is preferable that the calculation processing of the error function be implemented using a configuration suitable for integration (integration into IC) so that the molecular electronic state can be calculated and the molecular simulation can be performed by using not only a large-scale computer but also a personal computer.
It is necessary to calculate the error function when applying the Gaussian function. Since an arbitrary function can be expressed by overlapping of the Gaussian functions, an error function calculation device which calculates the error function at high speed has a wide application range not only in the field of molecular design but also in other fields.
As described above, it is preferable that the calculation processing of the error function be implemented at low cost using a small configuration.
However, highly accurate calculation processing of the error function must be performed by a floating-point arithmetic as described in “Computing Methods for the Auxiliary s-type Integrals [0](m) by a Molecular Orbital Special-Purpose Machine MOEngine”, H. Takashima and nine others, JCPE Journal, Japan Chemistry Program Exchange, October 2001, Vol. 13, No. 4, pp. 241-250. Therefore, the scale of the circuit which implements the floating-point arithmetic is increased. Moreover, since the reference table must store data in floating-point representation, the capacity of the reference table is increased.